﻿/**********************************************************************
 * @file   GUICSVParameterDialog.h
 * @brief  CSV参数结果图窗口
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-02-14
 *********************************************************************/
#ifndef _GUICSVParameterDialog_H
#define _GUICSVParameterDialog_H

#include "GUIPostDialogAPI.h"
#include "GUIWidget/GUIDialogBase.h"

namespace Ui {
    class GUICSVParameterDialog;
}

namespace Core {
    class FITKActionOperator;
}

class QTableWidget;

namespace GUI
{
    class GUIAbsPostCurvePlotWidget;
    /**
     * @brief  CSV参数结果图窗口
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-12-31
     */
    class GUIPostDialogAPI GUICSVParameterDialog : public GUIDialogBase
    {
        Q_OBJECT
    public:
        /**
         * @brief  create object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-31
         */
        GUICSVParameterDialog(Core::FITKActionOperator* oper, QWidget *parent = nullptr, bool isAotoDelete = true);
        /**
         * @brief    Destroy object
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-31
         */
        virtual ~GUICSVParameterDialog();
        /**
         * @brief    设置数据
         * @param[i] objID 数据对象ID
         * @param[i] parameterType 
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-17
         */
        void setCSVPara(int objID, int parameterType);
        /**
         * @brief    参数化
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-19
         */
        void init();

    private:
        /**
         * @brief  ui object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-19
         */
        Ui::GUICSVParameterDialog *_ui;
        /**
         * @brief 操作器对象
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-10-23
         */
        Core::FITKActionOperator* _oper = nullptr;
        /**
         * @brief  曲线窗口
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-25
         */
        GUIAbsPostCurvePlotWidget* _curvePlotDialog = nullptr;
        /**
         * @brief  数据对象ID
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-19
         */
        int _objID{ -1 };
        /**
         * @brief  参数类型
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-19
         */
        int _parameterType{ 0 };
    };
}


#endif // _GUICSVParameterDialog_H
